// 获取当天时间年-月-日
export function getCurrentDayDate(type){
    // 创建一个 Date 对象
    const now = new Date();
    // 获取年份
    const year = now.getFullYear();
    // 获取月份（注意：月份从 0 开始，所以要加 1）
    const month = now.getMonth() + 1;
    // 获取日期
    const day = now.getDate();
    // 获取时、分、秒
    const hours = now.getHours(); // 时
    const minutes = now.getMinutes(); // 分
    const seconds = now.getSeconds(); // 秒
    // 格式化月份和日期，确保它们总是两位数
    const formattedMonth = month < 10 ? `0${month}` : month;
    const formattedDay = day < 10 ? `0${day}` : day;
    let formattedDate = type === 'yyddmm' ? `${year}-${formattedMonth}-${formattedDay} ${hours}:${minutes}:${seconds}`:`${year}-${formattedMonth}-${formattedDay} ${hours}:${minutes}:${seconds}`
    console.log('获取当天时间', formattedDate);
    return formattedDate
}

// 2025-03-13T03:07:57.000Z转为年-月-日 时:分:秒
export function formartIOSDate(isoDateString){
    //isoDateString"2025-03-13T03:07:57.000Z";
    let date = new Date(isoDateString);

    // 方法一
    // 提取本地时间的年、月、日、时、分、秒
    let year = date.getFullYear(); // 本地年
    let month = String(date.getMonth() + 1).padStart(2, '0'); // 本地月（补零）
    let day = String(date.getDate()).padStart(2, '0'); // 本地日（补零）
    let hours = String(date.getHours()).padStart(2, '0'); // 本地时（补零）
    let minutes = String(date.getMinutes()).padStart(2, '0'); // 本地分（补零）
    let seconds = String(date.getSeconds()).padStart(2, '0'); // 本地秒（补零）

    // 格式化为 年-月-日 时:分:秒
    let formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;

    // console.log(formattedDate);
    return formattedDate // 2025-03-13 03:07:57


    // 方法二
    // let date = new Date(isoDateString);

    // // 使用 toLocaleString 格式化
    // let formattedDate = date.toLocaleString('zh-CN', {
    // year: 'numeric',
    // month: '2-digit',
    // day: '2-digit',
    // hour: '2-digit',
    // minute: '2-digit',
    // second: '2-digit',
    // hour12: false // 使用 24 小时制
    // }); // 或 }).replace(/\//g, '-') //2025-03-13 11:07:57
    // return formattedDate //2025/03/13 11:07:57
}

// 日期格式化工具
export function formatDate(time) {
  if (!time) {
    return '--'
  }
  const date = time;
  const inputDate = new Date(date);
  const currentDate = new Date();

  // 计算时间差（毫秒）
  const timeDiff = currentDate.getTime() - inputDate.getTime();
  const oneDay = 24 * 60 * 60 * 1000;
  const diffDays = Math.floor(timeDiff / oneDay);

  if (timeDiff >= 0) {
    if (diffDays === 0) {
      const seconds = Math.floor(timeDiff / 1000);
      if (seconds < 60) {
        return `${seconds}秒前`;
      } else if (seconds < 3600) {
        const minutes = Math.floor(seconds / 60);
        return `${minutes}分钟前`;
      } else {
        const hours = Math.floor(seconds / 3600);
        const minutes = Math.floor((seconds % 3600) / 60);
        if (minutes === 0) {
          return `${hours}小时前`;
        } else {
          return `${hours}小时${minutes}分钟前`;
        }
      }
    } else {
      return `${diffDays}天前`;
    }
  } else {
    // 处理传入时间晚于当前时间的情况，将其视为 0 秒前
    return `0秒前`;
  }
}

// 新方法，处理以秒为单位的时间差并格式化为相应的时间描述
export function formatSeconds(secondsInput) {
  if (!secondsInput) {
    return '--';
  }
  const seconds = Math.abs(secondsInput);
  const oneDay = 24 * 60 * 60;
  const diffDays = Math.floor(seconds / oneDay);

  if (diffDays === 0) {
    if (seconds < 60) {
      return `${seconds}秒`;
    } else if (seconds < 3600) {
      const minutes = Math.floor(seconds / 60);
      return `${minutes}分钟`;
    } else {
      const hours = Math.floor(seconds / 3600);
      const minutes = Math.floor((seconds % 3600) / 60);
      if (minutes === 0) {
        return `${hours}小时`;
      } else {
        return `${hours}小时${minutes}分钟`;
      }
    }
  } else {
    return `${diffDays}天`;
  }
}

// Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间) 转 年-月-日 时:分：秒
export function formatDateTime(date) {
  if (!(date instanceof Date)) return '';
  const y = date.getFullYear();
  const m = String(date.getMonth() + 1).padStart(2, '0');
  const d = String(date.getDate()).padStart(2, '0');
  const h = String(date.getHours()).padStart(2, '0');
  const min = String(date.getMinutes()).padStart(2, '0');
  const s = String(date.getSeconds()).padStart(2, '0');
  return `${y}-${m}-${d} ${h}:${min}:${s}`;
}